home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
007
/
vtkermit.arc
/
VT100.DOC
< prev
next >
Wrap
INI File
|
1986-02-13
|
8KB
|
155 lines
[VT100.DOC] -- Documentation for VTKermit's VT100 emulation mode -- 6 Feb 86
VTKermit provides a very complete VT100 emulation feature. "Very complete"
isn't "complete" and VTKermit isn't a VT100, but for most standard uses
VTKermit does everything anyone would ever need it to.
Among the VT100 features that are supported are:
o All cursor positioning
o All screen and line clears
o All feasible display attributes, limited by hardware
o Region scrolling (absolute origin only)
o All feasible line drawing graphic characters, limited by hardware
o Device attributes ("what are you?")
o Numeric keypad, numeric and application modes
o LEDs L1-L4
o Save and restore cursor
o Printer support (most Media Copy functions, Control-PrtSc)
VT100 features *NOT* supported are:
o 132 column mode (no horizontal scrolling either)
o Black-on-white (white on black only)
o Smooth scrolling
o Split speeds (different transmit and receive baud rates)
o Keyclick
o Cursor shape control
o Double high and wide characters
o Autowrap is done wrong (wraps after 80th character instead of
before 81st)
o VT52 mode (sorry)
Also, 5 new VT100-style escape sequences are defined. All of these are
variations on the VT100 screen clear, which we hope DEC and ANSI do not extend
significantly in the future.
Standard:
ESC [ 0 J -- Standard VT100 clear-to-end-of-screen
ESC [ 1 J -- Standard VT100 clear-to-beginning-of-screen
ESC [ 2 J -- Standard VT100 clear-entire screen
New:
ESC [ 1 7 J -- Enter SERVER mode
ESC [ 1 8 J -- Identify self as VTKermit -- VTKermit will send
ESC [ 9 9 c in response to this, a VT100 will do
nothing
ESC [ 1 9 J -- Enter COMMAND-MODE
ESC [ 2 0 J -- Exit directly to DOS
ESC [ 2 1 J -- Preload a command for later execution
ESC[17J throws VTKermit into server mode. This can be very useful in a case
where a file uploading or downloading application is to be driven by the
remote host computer. In this application, the user tells the remote host
what he wants done in some way, and the remote host throws the user's computer
into server mode and SENDs or GETs whatever files it wants, sending a FINISH
packet when done. When the ESC[17J is received, the current screen will be
saved and the normal file transfer screen displayed. When the FINISH is
received, the saved terminal mode screen will be redisplayed, providing visual
continuity to the user. This is a nice feature.
ESC[18J is like a Device Attributes ("what are you?") VT100 sequence, but is
intended to determine whether the user is running VTKermit. Since VTKermit
claims to be a VT100 when queried with DA (ESC [ c), this is required if you
want to use any of the additional features described here.
ESC[19J throws the user into command mode. This is sometimes used in
conjunction with ESC[21J, described below.
ESC[20J exits the program immediately.
ESC[21J begins a "preload mode" in which received text is saved in a "preload
buffer" for later execution. The "received text" should be 94 or fewer
characters in length, and must be terminated with another ESCape. This
terminating escape must not be part of any ESCape sequence -- it is "eaten".
When terminal mode is exited, either by the user pressing F5 or closing the
session with {escape character} C or with the ESC[19J sequence (or the script
command COMMAND-MODE ...), then the "preloaded text" will be set up as an
"instant macro". Commas in the text will be converted to CRs, but double
commas (",,") will be converted to single commas. This is an extremely
powerful feature that can permit some very fancy tricks.
For example, if VTKermit receives the sequence
ESC [ 2 1 J s t a t u s , p u s h ESC ESC [ 1 9 J
it will preload the string "status,push", convert that into a "status {CR}
push" macro and then execute it. The user will see a STATUS display go by,
followed by a PUSH.
Note that these escape sequences may be recognized in any text that flows
through the VT100 emulation channel, so a PRINT command in a script file could
be used to invoke them. This enables a script file to execute VTKermit
commands, which would not be possible otherwise.
For example, the script command
PRINT /^[[21Jpush^[^[[19J/
will execute a PUSH from within a script. Ugly perhaps, but functional.
Ordinarily, VTKermit will use color attributes on a color display adapter. If
you have a monochrome screen connected to a color adapter, the SET DISPLAY
MONOCHROME command will change some attributes to be more readable on the
monochrome screen. This is the default on the IBM Portable PC. If you have a
color display connected to your Portable PC, give the SET DISPLAY COLOR
command to get color attributes.
VTKermit's VT100 mode uses any of three different methods to display text on
the screen. (In command mode, and for the pop-up status display, normal DOS
display calls are used.)
On a standard monochrome display, VTKermit updates its screen image in a local
buffer then "blasts" the image out to B000:0000, the address of the monochrome
card's display buffer. This is effectively instantaneous.
If you are running in color mode and VTKermit thinks you are running on an
Enhanced Graphics Adapter, it will use a method similar to the monochrome
method, but will blast the image to B800:0000, the normal address of the color
card's display buffer. This is also effectively instantaneous, though the EGA
hardware slows things down a little with wait states.
If, on the other hand, you are running on IBM's abysmal Color/Graphics Monitor
Adapter (CGA), you will endure what is probably the slowest screen update
imaginable. The method used involves use of two pages of CGA display memory
and a double-update retrace-synchronized display algorithm that is slow even
on an 8 MHz AT. *BUT*, the method has *NO SNOW* and *NO FLICKER* which are
the dual failings of the CGA.
This seems to work perfectly on true IBM PCs with true CGAs, but all bets are
off on other hardware. It works on some, not on others. Strangely, there is
a BIOS bug (I guess) which occurs on some Compaqs and Morrow/Zenith Pivot IIs
in which a "cancer" seems to eat the screen, slowly obscuring the displayed
information. Pressing F5 twice fixes the problem for a second, but then it
starts again. If you see this problem on your machine, try the hidden SET
CARD EGA command, which forces the display update to use the EGA code. This
is much better for liquid crystal displays anyway, since it is much faster.
In any case, if your hardware is other than the CGA and the display update
seems slow, try the SET CARD EGA command. If you get snow, you are stuck with
SET CARD COLOR.
There is also a SET CARD DEFAULT to let VTKermit decide what method to use.
Naturally, this is the default. In checking for an EGA, VTKermit looks for
the system board equipment flags saying "no monitor", which is how an EGA
machine should be set. A BIOS call to check might be better, maybe next
version.
Sadly, none of these work properly on some otherwise workable clones, such as
the AT&T 6300. From what I am told, the AT&T in color mode has both snow and
"cancer", so it is mostly unusable. I don't know why, but would be interested
in the answer if anyone else knows or finds out.
[End of VT100.DOC]